=head1 BASE INFORMATION

=head2 Filename

styleguide.pm

=head2 Path

/lib/doc/

=head2 Notes

=head2 ToDo's

=head2 Revision

=over 4

=item *

$HeadURL: http://catwork.googlecode.com/svn/trunk/lib/doc/Structure.pm $

=item * 

$Id: Structure.pm 2 2011-03-20 16:14:09Z hg.winkler.77 $

=back

=head1 Directorys Files and Apps

the goal of catwork is to give the developer a powerfull framework based on catalyst 
to develop his own APPS.

That APP should be in every case the same structure! So it would be possible to deploy
or remove a APP from the catwork framwork without big problems.

First we will describe the main structure how the files should be organized:

    /catwork/
    |-lib/
      |-catwork
        |-Controller/
          |-Default/        # thats the default controller designed for common webbrowser
            |-Case.pm       # default interface for catwork core
            |-Case/
              |-*.pm
            |-AppName.pm    # default interface for catwork app
            |-AppName/
              |-*.pm
          |-Mobile/         # the controller for moblie devices
            |-Core.pm       # mobile interface for catwork core
            |-Core/
              |-*.pm
            |-AppName.pm    # mobile interface for catwork app
            |-AppName/
              |-*.pm
          |-WebService/     # for ajax calls (that returns only JSON) and other ws related stuff
            |-Core.pm       # webservice for catwork core
            |-Core/
              |-*.pm
            |-AppName.pm    # webservice for catwork app
            |-AppName/
              |-*.pm
        |-Model/
          |-Core.pm         # model for catwork core
          |-Core/
            |-*.pm
          |-AppName.pm      # model for catwork app
          |-AppName/
            |-*.pm
        |-View/
          |-Default.pm      # the default view (TT)
          |-Mobile.pm       # view for mobile devices (TT)
          |-JSON.pm         # view for ajax related stuff (JSON) should be used with the WebService controller
    |-misc/                 #storage for prject related stuff
    |-root/
      |-srr/
        |-default/
          |-core/           # for the catwork core
            |-*.tt2         # for common content
            |-get_*.tt2     # if we need special calls with javacript and HTML content without the wrapper
          |-appname/
            |-*.tt2         # for common content
            |-get_*.tt2     # if we need special calls with javacript and HTML content without the wrapper
          |-macros/         # tt macros
          |-wrapper.tt2     # standard app wrapper
        |-mobile/
          |-core/           # for the catwork core
            |-*.tt2         # for common content
            |-get_*.tt2     # if we need special calls with javacript and HTML content without the wrapper
          |-appname/
            |-*.tt2         # for common content
            |-get_*.tt2     # if we need special calls with javacript and HTML content without the wrapper
          |-macros          # tt macros
          |-wrapper.tt2     # standard app wrapper
      |-static/
        |-css/ #TODO (HGW)
          |-core.css
          |-core/           # for catwork core
          |-appname.css     # special apps css
            |-*.css
        |-js/ #TODO (HGW)
          |-core.js
          |-base/           # for catwork core
          |-appname.js      # special apps js
          |-appname/
            |-*.js
        |-images #TODO (HGW)
          |-core/           # for the catwork core
            |-*.png
          |-appname/        # special apps images
            |-*.png
    |-script/ # Directory for Perl scripts
      |-catwork_cgi.pl      # To run your app as a cgi (not recommended)
      |-catwork_create.pl   # To create models, views, controllers
      |-catwork_fastcgi.pl  # To run app as a fastcgi program
      |-catwork_server.pl   # The normal development server
    |-t/                    # Directory for tests
    |-catwork.pl            # Core congiguration
    |-Makefile.PL           # Makefile to build application
    |-registry.pl           # App configuaration file

=head2 catwOrk Core Strucuture

    /catwork/
    |-lib/
      |-catwork
        |-Controller/
          |-Default/        # thats the default controller designed for common webbrowser
            |-Core.pm       # default interface for catwork core
            |-Core/
              |-*.pm
          |-Mobile/         # the controller for moblie devices
            |-Core.pm       # mobile interface for catwork core
            |-Core/
              |-*.pm
          |-WebService/     # for ajax calls (that returns only JSON) and other ws related stuff
            |-Core.pm       # webservice for catwork core
            |-Core/
              |-*.pm
        |-Model/
          |-Core.pm         # model for catwork core
          |-Core/
            |-*.pm
        |-View/
          |-Default.pm      # the default view (TT)
          |-Mobile.pm       # view for mobile devices (TT)
          |-JSON.pm         # view for ajax related stuff (JSON) should be used with the WebService controller
    |-misc/                 #storage for prject related stuff
    |-root/
      |-srr/
        |-default/
          |-core/           # for the catwork core
            |-*.tt2         # for common content
            |-get_*.tt2     # if we need special calls with javacript and HTML content without the wrapper
          |-macros/         # tt macros
          |-wrapper.tt2     # standard app wrapper
        |-mobile/
          |-core/           # for the catwork core
            |-*.tt2         # for common content
            |-get_*.tt2     # if we need special calls with javacript and HTML content without the wrapperer
          |-macros          # tt macros
          |-wrapper.tt2     # standard app wrapper
      |-static/
        |-css/ #TODO (HGW)
          |-core.css
          |-core/           # for catwork core
        |-js/ #TODO (HGW)
          |-core.js
          |-core/           # for catwork core
        |-images #TODO (HGW)
          |-core/           # for the catwork core
            |-*.png
    |-script/ # Directory for Perl scripts
      |-catwork_cgi.pl      # To run your app as a cgi (not recommended)
      |-catwork_create.pl   # To create models, views, controllers
      |-catwork_fastcgi.pl  # To run app as a fastcgi program
      |-catwork_server.pl   # The normal development server
    |-t/                    # Directory for tests
    |-catwork.pl            # Core congiguration
    |-Makefile.PL           # Makefile to build application
    |-registry.pl           # App configuaration file

=head2 App Structure

    /catwork/
    |-lib/
      |-catwork
        |-Controller/
          |-Default/        # thats the default controller designed for common webbrowser
            |-AppName.pm    # default interface for catwork app
            |-AppName/
              |-*.pm
          |-Mobile/         # the controller for moblie devices
            |-AppName.pm    # mobile interface for catwork app
            |-AppName/
              |-*.pm
          |-WebService/     # for ajax calls (that returns only JSON) and other ws related stuff
            |-AppName.pm    # webservice for catwork app
            |-AppName/
              |-*.pm
        |-Model/
          |-AppName.pm      # model for catwork app
          |-AppName/
            |-*.pm
    |-root/
      |-srr/
        |-default/
          |-appname/
            |-*.tt2         # for common content
            |-get_*.tt2     # if we need special calls with javacript and HTML content without the wrapper
        |-mobile/
          |-appname/
            |-*.tt2         # for common content
            |-get_*.tt2     # if we need special calls with javacript and HTML content without the wrapper
      |-static/
        |-css/ #TODO (HGW)
          |-appname.css     # special apps css
            |-*.css
        |-js/ #TODO (HGW)
          |-appname.js      # special apps js
          |-appname/
            |-*.js
        |-images #TODO (HGW)
          |-appname/        # special apps images
          |-*.png
    |-registry.pl           # App configuaration file

=head2 Open Questions

=item 2

how is /lib/catwork/View/TT.pm working?!?

=back

=cut
